package jjoms.model.qna;

import java.util.List;

import javax.annotation.Resource;

import jjoms.model.board.BoardVO;
import jjoms.model.board.ListVO;
import jjoms.model.board.PagingBean;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class QnaServiceImpl implements QnaService {
	@Resource(name="qnaDAOImpl")
	private QnaDAO qnaDAO;
	
	@Override
	public ListVO getallQnaList(String pageNo){
		
		//return qnaDAO.getallQnaList();
		
		
		if(pageNo==null||pageNo=="") 
			pageNo="1";
		List<QnaVO> list=qnaDAO.getallQnaList(pageNo);
		int total=qnaDAO.totalContent();
		PagingBean paging=new PagingBean(total,Integer.parseInt(pageNo));
		ListVO lvo=new ListVO(list,paging);
		return  lvo;
		
		
	}
	@Override
	public void qnaWrite(QnaVO qvo){
		 qnaDAO.qnaWrite(qvo);
	}
	@Override
	public QnaVO showQnaContent(int qnaNo){
		qnaDAO.updateCount(qnaNo);
		return qnaDAO.showQnaContent(qnaNo);
	}
	@Override
	public QnaVO showQnaContentNoHit(int qnaNo){		
		return qnaDAO.showQnaContent(qnaNo);
	}
	@Override
	public void qnaUpdate(QnaVO qvo){
		qnaDAO.qnaUpdate(qvo);
	}
	@Override
	public void qnaDelete(int qnaNo){
		qnaDAO.qnaDelete(qnaNo);
	}
	@Transactional
	public void reply(QnaVO qvo) {

		int ref = qvo.getRef();
		int restep = qvo.getRestep();
		int relevel = qvo.getRelevel();
		qnaDAO.updateRestep(ref, restep);
		//update 처리 후
		//원본 글의 것보다 restep과 relevel이 1씩 커야 하므로
		//입력 전에 restep값 과 relevel의 값을 1씩 증가하여 insert시킨다.
		qvo.setRestep(restep+1);
		qvo.setRelevel(relevel+1);
		qnaDAO.insertRefContent(qvo);//답변 글 입력								
	}
}
